//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//class Solution {
//    public static List<Integer> findAnagrams(String ss, String pp) {
//        List<Integer> ret=new ArrayList<>();
//        int[] hash1=new int[26];
//        int[] hash2=new int[26];
//        int left=0;
//        int count=0;
//        char[] s=ss.toCharArray();
//        char[] p=pp.toCharArray();
//        int len=p.length;
//        for(int i=0;i<len;i++){
//            hash1[p[i]-'a']++;
//        }
//        for(int i=0;i<s.length;i++){
//            char in=s[i];
//            if(++hash2[in-'a']<=hash1[in-'a']){
//                count++;
//            }
//            if(i-left+1>len){
//                char out=s[left];
//                if(hash2[out-'a']<=hash1[out-'a']){
//                    count--;
//                }
//                left++;
//                hash2[out-'a']--;
//            }
//            if(count==len)  ret.add(left);
//        }
//
//        return ret;
//    }
//    public static List<Integer> findSubstring(String s, String[] words) {
//
//            List<Integer> ret=new ArrayList<>();
//            Map<String,Integer> hash1=new HashMap<>();
//            Map<String,Integer> hash2=new HashMap<>();
//            for(String x:words){
//                hash1.put(x,hash1.getOrDefault(x,0)+1);
//            }
//            int m=words.length;
//            int len=words[0].length();
//            int count=0,left=0;
//            for(int i=0;i+len<=s.length();i+=len){
//                String in=s.substring(i,i+len);
//                hash2.put(in,hash2.getOrDefault(in,0)+1);
//                if(hash2.get(in)<=hash1.getOrDefault(in,0)) count++;
//                if(i-left+1>m*len){
//                    String out=s.substring(left,left+len);
//                    if(hash2.getOrDefault(out,0)<=hash1.getOrDefault(out,0)) count--;
//                    hash2.put(out,hash2.get(out)-1);
//                    left+=len;
//                }
//                if(m==count)  ret.add(left);
//
//            }
//            return ret;
//
//
//    }
//}
//
//public class Test {
//    public static void main(String[] args) {
//        String ss="barfoothefoobarman";
//        String[] pp={"foo","bar"};
//      List<Integer> ret=Solution.findSubstring(ss,pp);
//       System.out.println(ret.toString());
//     HashMap<String,Integer> hash=new HashMap<>();
//     hash.put("foo",1);
//     hash.put("bar",2);
//     hash.put("baz",1);
//     hash.put("foo",hash.getOrDefault("bar",0)+1);
//     hash.put("baz",hash.get("baz")-1);
//        System.out.println(hash.size());
//        System.out.println(hash.toString());
//    }
//}
